package com.taobao.api.domain;

import java.util.Date;
import java.util.List;

import com.taobao.api.TaobaoObject;
import com.taobao.api.internal.mapping.ApiField;
import com.taobao.api.internal.mapping.ApiListField;

/**
 * 经销采购申请单
 *
 * @author auto create
 * @since 1.0, null
 */
public class DealerOrder extends TaobaoObject {

	private static final long serialVersionUID = 3257867356922654731L;

	/**
	 * 申请时间
	 */
	@ApiField("applied_time")
	private Date appliedTime;

	/**
	 * 采购商nick
	 */
	@ApiField("applier_nick")
	private String applierNick;

	/**
	 * 采购商审核通过时间
	 */
	@ApiField("audit_time_applier")
	private Date auditTimeApplier;

	/**
	 * 供货商审核通过时间
	 */
	@ApiField("audit_time_supplier")
	private Date auditTimeSupplier;

	/**
	 * 关闭原因
	 */
	@ApiField("close_reason")
	private String closeReason;

	/**
	 * 产品明细
	 */
	@ApiListField("dealer_order_details")
	@ApiField("dealer_order_detail")
	private List<DealerOrderDetail> dealerOrderDetails;

	/**
	 * 采购申请单编号
	 */
	@ApiField("dealer_order_id")
	private Long dealerOrderId;

	/**
	 * 出库数
	 */
	@ApiField("delivered_quantity_count")
	private Long deliveredQuantityCount;

	/**
	 * 物流费用(精确到2位小数;单位:元。如:200.07，表示:200元7分 )
	 */
	@ApiField("logistics_fee")
	private String logisticsFee;

	/**
	 * 物流方式：
SELF_PICKUP（自提）、LOGISTICS（物流发货)
	 */
	@ApiField("logistics_type")
	private String logisticsType;

	/**
	 * 修改时间
	 */
	@ApiField("modified_time")
	private Date modifiedTime;

	/**
	 * WAIT_FOR_SUPPLIER_AUDIT1：采购方刚申请，待供货方审核；
SUPPLIER_REFUSE：供货方驳回，待采购方审核；
WAIT_FOR_APPLIER_AUDIT：供货方修改后，待采购方审核；
WAIT_FOR_SUPPLIER_AUDIT2：采购方驳回修改，待供货方再审核；
BOTH_AGREE_WAIT_PAY：双方审核通过，待采购方付款；
WAIT_CONFIRM_PAID：采购方已付款，待供货方确认；
WAIT_FOR_SUPPLIER_DELIVER：付款成功，待供货方出库；
WAIT_FOR_APPLIER_STORAGE：供货方出库，待采购方入库；
TRADE_FINISHED：采购方入库，交易成功；
TRADE_CLOSED：采购申请单关闭。
	 */
	@ApiField("order_status")
	private String orderStatus;

	/**
	 * 支付方式：
ALIPAY_SURETY（支付宝担保交易）
TRANSFER（线下转账）
PREPAY（预存款）
IMMEDIATELY（即时到账）
	 */
	@ApiField("pay_type")
	private String payType;

	/**
	 * 总采购数量
	 */
	@ApiField("quantity_count")
	private Long quantityCount;

	/**
	 * 收货人信息
	 */
	@ApiField("receiver")
	private Receiver receiver;

	/**
	 * 采购商驳回原因
	 */
	@ApiField("refuse_reason_applier")
	private String refuseReasonApplier;

	/**
	 * 供货商驳回原因
	 */
	@ApiField("refuse_reason_supplier")
	private String refuseReasonSupplier;

	/**
	 * 供货商nick
	 */
	@ApiField("supplier_nick")
	private String supplierNick;

	/**
	 * 采购总价(精确到2位小数;单位:元。如:200.07，表示:200元7分 )
	 */
	@ApiField("total_price")
	private String totalPrice;

	public Date getAppliedTime() {
		return this.appliedTime;
	}
	public void setAppliedTime(Date appliedTime) {
		this.appliedTime = appliedTime;
	}

	public String getApplierNick() {
		return this.applierNick;
	}
	public void setApplierNick(String applierNick) {
		this.applierNick = applierNick;
	}

	public Date getAuditTimeApplier() {
		return this.auditTimeApplier;
	}
	public void setAuditTimeApplier(Date auditTimeApplier) {
		this.auditTimeApplier = auditTimeApplier;
	}

	public Date getAuditTimeSupplier() {
		return this.auditTimeSupplier;
	}
	public void setAuditTimeSupplier(Date auditTimeSupplier) {
		this.auditTimeSupplier = auditTimeSupplier;
	}

	public String getCloseReason() {
		return this.closeReason;
	}
	public void setCloseReason(String closeReason) {
		this.closeReason = closeReason;
	}

	public List<DealerOrderDetail> getDealerOrderDetails() {
		return this.dealerOrderDetails;
	}
	public void setDealerOrderDetails(List<DealerOrderDetail> dealerOrderDetails) {
		this.dealerOrderDetails = dealerOrderDetails;
	}

	public Long getDealerOrderId() {
		return this.dealerOrderId;
	}
	public void setDealerOrderId(Long dealerOrderId) {
		this.dealerOrderId = dealerOrderId;
	}

	public Long getDeliveredQuantityCount() {
		return this.deliveredQuantityCount;
	}
	public void setDeliveredQuantityCount(Long deliveredQuantityCount) {
		this.deliveredQuantityCount = deliveredQuantityCount;
	}

	public String getLogisticsFee() {
		return this.logisticsFee;
	}
	public void setLogisticsFee(String logisticsFee) {
		this.logisticsFee = logisticsFee;
	}

	public String getLogisticsType() {
		return this.logisticsType;
	}
	public void setLogisticsType(String logisticsType) {
		this.logisticsType = logisticsType;
	}

	public Date getModifiedTime() {
		return this.modifiedTime;
	}
	public void setModifiedTime(Date modifiedTime) {
		this.modifiedTime = modifiedTime;
	}

	public String getOrderStatus() {
		return this.orderStatus;
	}
	public void setOrderStatus(String orderStatus) {
		this.orderStatus = orderStatus;
	}

	public String getPayType() {
		return this.payType;
	}
	public void setPayType(String payType) {
		this.payType = payType;
	}

	public Long getQuantityCount() {
		return this.quantityCount;
	}
	public void setQuantityCount(Long quantityCount) {
		this.quantityCount = quantityCount;
	}

	public Receiver getReceiver() {
		return this.receiver;
	}
	public void setReceiver(Receiver receiver) {
		this.receiver = receiver;
	}

	public String getRefuseReasonApplier() {
		return this.refuseReasonApplier;
	}
	public void setRefuseReasonApplier(String refuseReasonApplier) {
		this.refuseReasonApplier = refuseReasonApplier;
	}

	public String getRefuseReasonSupplier() {
		return this.refuseReasonSupplier;
	}
	public void setRefuseReasonSupplier(String refuseReasonSupplier) {
		this.refuseReasonSupplier = refuseReasonSupplier;
	}

	public String getSupplierNick() {
		return this.supplierNick;
	}
	public void setSupplierNick(String supplierNick) {
		this.supplierNick = supplierNick;
	}

	public String getTotalPrice() {
		return this.totalPrice;
	}
	public void setTotalPrice(String totalPrice) {
		this.totalPrice = totalPrice;
	}

}
